As more and more types of data are stored electronically, data encryption is becoming increasingly important. For example, more and more personal and private information is being transferred across networks and stored in databases and other storage devices, such as storage area networks (SANs). Similarly, increasing regulation on the storage of corporate data has led to more scrutiny in protection of that data.
Various storage technologies exist that are suitable to store and protect such sensitive data, and extend from basic desktop solutions to enterprise SAN solutions. In conventional encryption methods, algorithmic schemes are used to transform the data, based on an encryption key, to a form that is generally non-readable to unauthorized parties without access to the key and the proper algorithmic schemes. To decrypt the encrypted data, a decryption key, which may be symmetric or asymmetric to the encryption key, is used to trigger an algorithm mechanism to decrypt the data, transforming it back to the original readable version. In this regard, the decryption key is required to properly access the data, and as such, the decryption key is typically securely maintained and is accessible to, retrievable by, or otherwise known to parties authorized to access the data. In further encryption methods, the encryption key may cycle or change over time, thus providing an additional layer of security to the data stored, as the cycling or changing keys make it more difficult for unauthorized users, or even past authorized users who are no longer authorized, to hack into and access the encrypted data. As the keys cycle, a reencryption process may be utilized to convert the data encrypted with the old key to data encrypted with the new key. While the reencryption process is active, a key manager may be used to monitor which data has been encrypted with which of the cycling or changing keys.
In conventional data storage systems, the encryption methods, and particularly cycling or changing encryption key methods, did not need to address the problems that arise with snapshots, and thus, disk-to-disk backup, disk-to-SAN backup, or other backup was relatively simple. With non-cycling or non-changing encryption key methods, the data could simply be replicated to the backup storage. However, with cycling or changing encryption keys, if an encrypted backup copy of the data is required or desired, the entire storage system could not simply be replicated in the encrypted form, as the keys will continue to cycle and the data in the backup copy will gradually become inaccessible due to disassociation with the proper key identifiers. Nonetheless, backup remained relatively simple. To make a backup copy of the data, the entire storage system could be decrypted utilizing the key manager to identify the appropriate keys, the backup could be re-encrypted with a new key (or the current cycled key), and the key manager could associate the new key with the backup data. However, this is plainly very time consuming, as it requires decryption and encryption of all the data in the portion of the data storage system being backed up.
In relatively recent years, however, the introduction of snapshots or point-in-time copies (PITCs) have provided increased benefits for data storage systems and the manner in which historical data can be efficiently stored, identified, and used. However, with the introduction of snapshots or PITCs, the complexity of the manners by which encryption and decryption methods utilizing cycling or changing keys may be applied has also increased. For example, the traditional reencryption process, identified above, is very time consuming, and thus it is relatively inevitable that snapshots will continue to be committed to disk during the reencryption process. Accordingly, where a snapshot is committed during execution of a reencryption cycle caused by a key change, the snapshot is committed with data encrypted by multiple (two or more) keys. Traditionally, the old key(s) may be discarded since all current data will be reencrypted with the new key. However, the historical snapshot, being committed during the reencryption process and prior to all data being reencrypted with the new key, will retain portions of data that would be inaccessibly encrypted utilizing the old key(s). Even if the old key is retained, unless the correct portions of the snapshot were associated with the correct key(s), portions of the snapshot would remain inaccessibly decrypted.
Accordingly, there is a need in the art, in data storage systems having snapshot capabilities, for improved encryption and decryption methods utilizing cycling or changing keys which are cognizant of the need or desire to maintain accessibility of historical snapshots or PITCs and their corresponding associations with the cycling or changing encryption/decryption keys.